Sauvegardes en ajout uniquement avec borg à un autre VPS ou serveur dédié

Sommaire

1 Configurer le serveur de sauvegarde

1.1 Installer borg et créer un nouvel utilisateur borgbackup

1.2 Générer des clés SSH pour l'utilisateur borgbackup

1.3 Créer le répertoire de sauvegarde

2 Configurez le serveur principal et comment il se connecte au serveur de sauvegarde

2.1 Installer Borg

2.2 Autoriser le serveur principal à accéder au serveur de sauvegarde

2.3 Choisir un mot de passe de référentiel borg

2.4 Créer le référentiel borg

3 Sauvegarde depuis le serveur principal

3.1 Exécuter la sauvegarde manuellement

3.2 Planifier une sauvegarde avec cron

4 Restaurer les fichiers (en étant connecté au serveur principal)

4.1 Afficher une liste des sauvegardes effectuées

3.4 Vérifier/restaurer les données

4 Élaguer les anciennes sauvegardes (nécessite un accès à la fois à la sauvegarde et au serveur principal)

4.1 Autoriser l'accès temporaire en lecture+écriture (effectué depuis le serveur de sauvegarde)

4.2 Élaguer les anciennes sauvegardes (faites à partir du serveur principal)

4.3 Interdire l'accès en lecture + écriture (effectué depuis le serveur de sauvegarde)

4.4 Remarques finales

 

Ce tutoriel montrera comment sauvegarder les données d'un serveur, dénommé serveur principal , vers un autre hébergeur, nommé ici serveur de sauvegarde , avec le logiciel gratuit de sauvegarde Borg . Le serveur de sauvegarde sera configuré de manière à ce que le serveur principal en utilisation normale ne puisse qu'ajouter de nouvelles données, et non supprimer ou modifier les anciennes sauvegardes. Cette fonctionnalité d'ajout uniquement, combinée au fait que les sauvegardes sont stockées sur un serveur séparé dans un emplacement séparé, protège les sauvegardes contre la perte de données, par exemple lors d'accidents naturels ou d'une attaque de pirate informatique contre le serveur principal.

Les prérequis pour suivre ce guide sont d'utiliser Debian Stretch (9) ou Debian Buster (10) et d'avoir deux serveurs disponibles, un serveur principal à partir duquel les sauvegardes sont effectuées et un autre serveur de sauvegarde où les archives de sauvegarde seront stockées. Ces deux serveurs doivent se trouver dans des emplacements séparés pour une protection optimale.

Ce guide commencera par la configuration sur le serveur de sauvegarde dans la première section. Dans la deuxième section, nous allons configurer le serveur principal, puis effectuer une sauvegarde, un test de restauration et montrer comment élaguer manuellement les anciennes archives de sauvegarde.

1 Configurer le serveur de sauvegarde

1.1 Installer borg et créer un nouvel utilisateur borgbackup

Sur le serveur de sauvegarde (le serveur sur lequel les sauvegardes doivent être stockées), installez Borg dans un terminal racine avec cette commande :

apt install borgbackup

Ensuite, choisissez un mot de passe pour l'utilisateur borg que nous allons bientôt créer. (Il est obligatoire d'avoir un mot de passe pour chaque utilisateur, cependant, ce mot de passe ne sera presque jamais utilisé, car nous nous connecterons normalement au serveur de sauvegarde avec une clé SSH.) Si vous souhaitez générer un mot de passe aléatoire de 64 caractères, utilisez cette commande :

< /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-64};echo;

Copiez le mot de passe de l'utilisateur borg affiché dans le presse-papiers et enregistrez-le dans un emplacement sécurisé ailleurs que sur le serveur lui-même.

Maintenant, nous allons créer l'utilisateur borgbackup :

adduser borgbackup

Lorsque vous recevez une question sur le mot de passe, collez le mot de passe que vous avez copié précédemment, appuyez sur Entrée, puis collez à nouveau le mot de passe suivi de Entrée. Ne remplissez rien d'autre, appuyez simplement sur Entrée pour répondre aux questions suivantes.

1.2 Générer des clés SSH pour l'utilisateur borgbackup

Nous devons maintenant devenir le nouvel utilisateur avec su :

su borgbackup

cd

Ensuite, nous générons une nouvelle paire de clés SSH pour l'utilisateur :

ssh-keygen -t ed25519

Après avoir appuyé sur Entrée, vous obtiendrez une série de questions. Laissez les réponses vides, continuez simplement à appuyer sur Entrée plusieurs fois jusqu'à ce que la commande soit terminée. Ne définissez aucune phrase secrète pour la clé, appuyez également sur Entrée pour cette question.

1.3 Créer le répertoire de sauvegarde

Maintenant, il est temps de créer le répertoire où seront stockées les sauvegardes, qui dans la terminologie borg est défini comme le référentiel borg . Nous appellerons simplement le répertoire borgbackup, mais vous pouvez plutôt choisir de le nommer d'après le nom d'hôte de votre serveur principal.

cd

mkdir borgbackup

chmod go-rwx borgbackup

chmod u+rwx borgbackup

2 Configurez le serveur principal et comment il se connecte au serveur de sauvegarde

2.1 Installer Borg

Maintenant, nous passons du travail sur le serveur de sauvegarde au travail sur le serveur principal.

Sur le serveur principal (le serveur dont vous souhaitez effectuer des sauvegardes), installez Borg dans un terminal racine avec cette commande :

apt install borgbackup

Plus tard, nous aurons besoin de l'adresse IP externe du serveur principal (celui où nous sommes). Veuillez copier cette adresse IP afin de l'avoir facilement disponible. Si vous ne vous souvenez plus de l'adresse IP externe du serveur principal, exécutez cette commande pour l'afficher :

wget -qO- http://ipecho.net/plain | xargs echo

2.2 Autoriser le serveur principal à accéder au serveur de sauvegarde

Commandes que vous exécutez sur le serveur principal

Nous allons maintenant préparer l'authentification par clé SSH afin qu'il soit possible de se connecter du serveur principal au serveur de sauvegarde. Tout d'abord, utilisez cette commande pour afficher la clé SSH publique de l'utilisateur root sur le serveur principal :

cat ~/.ssh/id_*.pub

Si vous avez une clé publique SSH pour root, vous devriez maintenant voir cette clé s'afficher. Copiez la clé dans votre presse-papiers, vous devrez la coller plus tard dans un fichier sur le serveur de sauvegarde.

Si vous ne voyez pas la clé affichée, vous devez générer la paire de clés. Par exemple, exécutez cette commande dans ce cas : ssh-keygen -t ed25519 suivi d'appuis répétés sur Entrée.

Maintenant, nous devons dire au serveur de sauvegarde d'autoriser l'accès depuis le serveur principal (où nous sommes actuellement) avec la clé SSH publique. Pour ce faire, saisissez cette commande, mais remplacez d'abord  BACKUPHOSTNAME par le nom d'hôte de votre serveur de sauvegarde :

ssh-copy-id -i ~/.ssh/id_*.pub borgbackup@BACKUPHOSTNAME

Se connecter au serveur de sauvegarde

Vous devrez maintenant saisir le mot de passe de l'utilisateur borgbackup que vous avez créé à l'étape 1.1. Une fois cela fait, il devrait être possible d'accéder directement au serveur de sauvegarde en tant qu'utilisateur borgbackup sans aucun mot de passe. Maintenant, testez que cela est possible en tapant cette commande, en remplaçant BACKUPHOSTNAME par le nom d'hôte de votre serveur de sauvegarde :

ssh borgbackup@BACKUPHOSTNAME

Commandes que vous exécutez sur le serveur de sauvegarde

Nous allons maintenant renforcer encore plus la sécurité en restreignant l'accès uniquement à partir de l'adresse IP du serveur principal utilisant cette clé.

Restez sur le serveur de sauvegarde et exécutez cette commande :

nano ~/.ssh/authorized_keys

Maintenant, vous devriez voir une longue ligne qui commence par ssh. Vérifiez que le curseur se trouve au début du fichier. Ajoutez les données suivantes sur la même ligne, avant la clé ssh, mais veuillez d'abord remplacer SERVERIPADDRESS par l'adresse IP de votre serveur (que vous avez recherchée au début de cette section) :

from="SERVERIPADDRESS",command="borg serve --append-only --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc

Assurez-vous qu'il y a un espace entre la section que vous avez ajoutée et la section préexistante commençant par ssh qui suit par la suite. Enregistrez ensuite le fichier avec Ctrl+O et quittez avec Ctrl+X. Nous avons maintenant limité l'accès au serveur de sauvegarde de deux manières. Premièrement, seule l'adresse IP du serveur principal est autorisée à accéder. Deuxièmement, grâce à l'option --append-only, il est uniquement autorisé d'ajouter des données au référentiel borg, mais les suppressions et les modifications ne sont pas autorisées.

Déconnectez-vous du serveur de sauvegarde et revenez au serveur principal

Exécutez cette commande pour quitter le serveur de sauvegarde et revenir au serveur principal :

exit

2.3 Choisir un mot de passe de référentiel borg

Un référentiel borg est l'emplacement où les sauvegardes sont stockées. Il est protégé par un mot de passe de référentiel borg, que vous devez choisir. Le mot de passe est nécessaire pour effectuer de nouvelles sauvegardes et accéder aux anciennes. Vous pouvez soit créer vous-même un mot de passe (choisir un minimum de 20 caractères pour une sécurité optimale), soit générer au hasard un mot de passe de 64 caractères avec cette commande :

< /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-64};echo;

Copiez le mot de passe du référentiel borg dans votre presse-papiers en le marquant et en appuyant sur Ctrl+C. Il est essentiel de sauvegarder le mot de passe du référentiel borg dans un endroit sécurisé car sans ce mot de passe vous ne pouvez pas accéder à vos sauvegardes ! Sauvegardez donc une copie du mot de passe borg maintenant ailleurs que sur vos serveurs, par exemple dans un gestionnaire de mots de passe (comme KeePass) sur votre propre ordinateur.

2.4 Créer le référentiel borg

Dans la terminologie Borg, l'emplacement où les sauvegardes sont stockées est nommé le  référentiel borg . Le mot de passe sera désormais défini comme variable d'environnement en vue de la création de ce référentiel. Remplacez PASSWORD par votre mot de passe actuel et exécutez la commande ci-dessous en tant qu'utilisateur root de votre serveur principal :

export BORG_PASSPHRASE='PASSWORD'

Créez le référentiel borg de cette manière - mais remplacez d'abord BACKUPHOSTNAME par le nom d'hôte de votre serveur de sauvegarde :

borg init -e repokey-blake2 borgbackup@BACKUPHOSTNAME:/home/borgbackup/borgbackup/

Tout est maintenant prêt pour utiliser borg pour les sauvegardes, ce qui sera le sujet de la section suivante.

3 Sauvegarde depuis le serveur principal

3.1 Exécuter la sauvegarde manuellement

Dans l'exemple qui suit, l'ensemble du système du serveur principal sera sauvegardé, à l'exception de certains répertoires qui ne sont pas pertinents pour la sauvegarde.

Veuillez vous assurer que vous êtes connecté en tant que root sur votre serveur principal avant de continuer. Tout d'abord, nous allons définir la variable d'environnement pour le mot de passe du référentiel borg via cette commande (remplacez PASSWORD par votre mot de passe réel du référentiel borg :

export BORG_PASSPHRASE='PASSWORD'

Ensuite, nous exécuterons la commande suivante pour effectuer une sauvegarde complète du système. Veuillez ajuster les exclusions de répertoires, celles qui commencent par --exclude, à vos besoins. Par exemple, vous pouvez vouloir ajouter une exclusion du répertoire /mnt en ajoutant --exclude=mnt Veuillez noter que vous ne devez pas entrer la première barre oblique dans le modèle d'exclusion, par exemple vous écrivez mnt au lieu de /mnt. Vous devez également remplacer BACKUPHOSTNAME par le nom d'hôte réel de votre serveur de sauvegarde. Nous devons d'abord exécuter une commande cd /, car borg démarre normalement la sauvegarde à partir du répertoire à partir duquel il est exécuté.

cd / && borg create --stats --progress --compress lz4 borgbackup@BACKUPHOSTNAME:/home/borgbackup/borgbackup/::`hostname`-`date +%Y-%m-%d-%H-%M-%S` ./ --exclude=dev --exclude=mnt/borgbackup -exclude=proc --exclude=run --exclude=root/.cache/ --exclude=sys --exclude=tmp && cd

La première fois que la sauvegarde est exécutée, cela prendra un certain temps (jusqu'à plusieurs heures si vous avez une grande quantité de données à sauvegarder). Vous verrez une ligne d'état mettant rapidement à jour exactement quel fichier borg est en train de traiter dans la sauvegarde. À partir de la deuxième fois, les sauvegardes seront beaucoup plus rapides, car seuls les changements depuis la dernière sauvegarde seront transmis.

3.2 Planifier une sauvegarde avec cron

Il est bien sûr préférable d'exécuter une sauvegarde automatique à intervalles réguliers, plutôt que d'avoir à penser à exécuter des sauvegardes manuelles. Pour ce faire, nous créons d'abord un script shell qui exécute la tâche de sauvegarde, que nous éditons ensuite avec l'éditeur nano en tant qu'utilisateur root sur le serveur principal :

touch /usr/local/bin/borgbackup.sh

chmod go-rwx /usr/local/bin/borgbackup.sh

chmod u+rwx /usr/local/bin/borgbackup.sh

nano /usr/local/bin/borgbackup.sh

Insérez ces lignes dans le nouveau script shell :

#!/bin/sh

export BORG_PASSPHRASE='PASSWORD'

cd / && borg create --stats --progress --compress lz4 borgbackup@BACKUPHOSTNAME:/home/borgbackup/borgbackup/::`hostname`-`date +%Y-%m-%d-%H-%M-%S` ./ --exclude=dev --exclude=proc --exclude=run --exclude=root/.cache/ --exclude=mnt/borgmount --exclude=sys --exclude=tmp && cd

Vous devez remplacer PASSWORD par le mot de passe de votre référentiel borg, remplacer BACKUPHOSTNAME par le nom d'hôte de votre serveur de sauvegarde et enfin ajuster les modèles d'exclusion à vos besoins - vous pouvez ajouter --exclude=mnt pour exclure le répertoire /mnt de la sauvegarde. Enregistrez le fichier dans l'éditeur nano en appuyant sur Ctrl+O, puis quittez avec Ctrl+X.

Ensuite, testez le script en l'exécutant depuis le terminal :

/usr/local/bin/borgbackup.sh

Afin de planifier une sauvegarde à 02h00 tous les soirs, ajoutez le script shell de sauvegarde que nous venons de créer dans /etc/crontab :

nano /etc/crontab

Ajoutez ensuite une nouvelle ligne à la crontab avec la tâche de sauvegarde :

# Backup via Borg to backup server

00 02           * * *   root    /usr/local/bin/borgbackup.sh

4 Restaurer les fichiers (en étant connecté au serveur principal)

4.1 Afficher une liste des sauvegardes effectuées

Vous n'avez pas de système de sauvegarde fonctionnel jusqu'à ce que vous ayez vérifié que vous pouvez restaurer les données de vos sauvegardes. Par conséquent, notre prochaine étape consiste à vérifier la sauvegarde que nous avons effectuée précédemment. Cela se fera à partir du terminal racine du serveur principal. Pour ce faire, nous monterons l'archive de sauvegarde en tant que système de fichiers supplémentaire, mais nous allons d'abord vérifier la liste des sauvegardes effectuées en créant un script shell en tant qu'utilisateur root sur votre serveur principal :

touch /usr/local/bin/borglist.sh

chmod go-rwx /usr/local/bin/borglist.sh

chmod u+rwx /usr/local/bin/borglist.sh

nano /usr/local/bin/borglist.sh

Insérez ce qui suit dans le nouveau script shell, en remplaçant PASSWORD par le mot de passe de votre référentiel borg, et BACKUPHOSTNAME par le nom d'hôte de votre serveur de sauvegarde :

#!/bin/sh

export BORG_PASSPHRASE='PASSWORD'

borg list -v borgbackup@BACKUPHOSTNAME:/home/borgbackup/borgbackup/

Enregistrez le fichier avec Ctrl+O suivi de Ctrl+X. Exécutez ensuite le script shell de cette manière :

/usr/local/bin/borglist.sh

Vous devriez maintenant voir une liste des sauvegardes qui ont été effectuées. Si votre première sauvegarde a été effectuée, vous devriez donc voir un élément dans la liste. Maintenant, marquez et copiez le nom de l'archive dans le presse-papiers. Vous trouvez le nom de l'archive dans la première colonne, il est composé du nom d'hôte de votre serveur principal suivi d'une date et d'une heure, sur ce format : mainhostname-2019-01-31-12-59-59 .

3.4 Vérifier/restaurer les données

Nous allons maintenant monter l'ensemble du référentiel borg en tant que montage du système de fichiers FUSE. Cela signifie que le référentiel borg - y compris tous les fichiers qui ont été sauvegardés - devient un système de fichiers, que nous pouvons parcourir et inspecter via des commandes normales telles que ls et cd.

Afin de pouvoir monter facilement le référentiel borg, nous allons créer un raccourci des commandes sous la forme d'un script shell. Créez et modifiez le script shell de cette manière :

touch /usr/local/bin/borgmount.sh

chmod go-rwx /usr/local/bin/borgmount.sh

chmod u+rwx /usr/local/bin/borgmount.sh

nano /usr/local/bin/borgmount.sh

Ensuite, insérez les lignes ci-dessous dans le script schell, mais veuillez d'abord changer le MOT DE PASSEci-dessous par le mot de passe de votre référentiel borg et remplacez BACKUPHOSTNAME par le nom d'hôte de votre serveur de sauvegarde :

#!/bin/sh

mkdir -p /mnt/borgbackup

export BORG_PASSPHRASE='PASSWORD'

borg mount borgbackup@BACKUPHOSTNAME:/home/borgbackup/borgbackup/ /mnt/borgbackup

Enregistrez le fichier avec Ctrl+O suivi de Ctrl+X. Exécutez ensuite le script shell de cette manière :

/usr/local/bin/borgmount.sh

Le référentiel borg devrait maintenant être monté sur /mnt/borgbackup - vous pouvez le vérifier en utilisant cd et ls :

cd /mnt/borgbackup

ls

Vous devriez maintenant voir un répertoire dans lequel réside votre sauvegarde. Allez dans ce répertoire avec cd (remplacez DIRECTORYNAME par le nom du répertoire que vous voyez affiché à la suite de la commande ls que vous venez d'entrer), puis utilisez ls pour voir le contenu :

cd DIRECTORYNAME

ls

Vous pourrez maintenant voir la dernière archive (la dernière sauvegarde effectuée). Vous pouvez comparer avec diff qu'un fichier a été correctement sauvegardé, par exemple pour /etc/fstab, avec cette commande :

diff etc/fstab /etc/fstab

Si vous n'obtenez aucune sortie de diff, les deux fichiers sont identiques et la sauvegarde a fonctionné pour ce fichier. Si, par contre, vous avez modifié le fichier depuis la dernière sauvegarde, vous verrez quelles lignes des fichiers diffèrent.

Si vous le souhaitez, vous pouvez restaurer les fichiers à partir de la sauvegarde, simplement en utilisant la commande cp pour copier les fichiers du sous-répertoire de /mnt/borgbackup dans lequel vous vous trouvez actuellement dans le terminal.

Enfin, nous allons créer un script pour démonter le support de fusible borg.

Créez et modifiez le script shell de cette manière :

touch /usr/local/bin/borgumount.sh

chmod go-rwx /usr/local/bin/borgumount.sh

chmod u+rwx /usr/local/bin/borgumount.sh

nano /usr/local/bin/borgumount.sh

Insérez ensuite les lignes ci-dessous dans le script schell :

#!/bin/sh

cd ~

umount /mnt/borgbackup

rmdir /mnt/borgbackup

Enregistrez le fichier avec Ctrl+O suivi de Ctrl+X. Exécutez ensuite le script shell de cette manière :

/usr/local/bin/borgumount.sh

Le montage du fusible borg est maintenant démonté et vous avez été placé dans le répertoire /root/ du terminal.

4 Élaguer les anciennes sauvegardes (nécessite un accès à la fois à la sauvegarde et au serveur principal)

Nous devons maintenant basculer entre le serveur de sauvegarde et le serveur principal. Tout d'abord, nous commençons par les commandes sur le serveur de sauvegarde.

Après un certain temps, la taille des sauvegardes peut augmenter. Pour des raisons de sécurité, le serveur principal n'est pas autorisé à supprimer automatiquement les anciennes sauvegardes. Cependant, nous pouvons autoriser temporairement la suppression des anciennes archives de sauvegarde si nécessaire, afin d'économiser de l'espace disque sur le serveur de sauvegarde.

Ce processus de suppression est appelé à élaguer dans la terminologie borg. Le processus d'élagage commence sur le serveur de sauvegarde, en autorisant un accès temporaire en lecture-écriture. Ensuite, nous nous connectons au serveur principal pour émettre la commande d'élagage. Enfin, nous accédons à nouveau au serveur de sauvegarde pour désactiver l'accès en lecture-écriture afin que les anciennes sauvegardes soient à nouveau protégées contre la suppression ou la modification.

4.1 Autoriser l'accès temporaire en lecture+écriture (effectué depuis le serveur de sauvegarde)

Nous allons maintenant travailler sur le serveur de sauvegarde.

Connectez-vous donc au serveur de sauvegarde et connectez-vous en tant que root. Afin de permettre l'accès en lecture+écriture, nous devons modifier le fichier /home/borgbackup/.ssh/authorized_keys sur le serveur de sauvegarde. Exécutez ces commandes pour devenir l'utilisateur borgbackup, effectuez une sauvegarde du fichier, puis modifiez le fichier avec nano :

su borgbackup

cd

cp -a ~/.ssh/authorized_keys ~/.ssh/authorized_keys.bak

nano ~/.ssh/authorized_keys

Maintenant, vous devriez voir dans l'éditeur nano une longue ligne commençant par from= . Coupez la ligne en appuyant sur Ctrl+K puis appuyez sur Ctrl+U, et encore une fois Ctrl+U pour que vous ayez maintenant deux lignes identiques. Appuyez deux fois sur la touche Haut de votre clavier pour placer le curseur sur la première ligne. Tapez ensuite un caractère # pour commenter la première ligne. Ensuite, appuyez sur la touche Bas de votre clavier pour accéder à la deuxième ligne. Ici, vous devez vous déplacer vers la droite avec la touche Droite de votre clavier jusqu'à ce que vous vous teniez au premier - dans --append-only. Appuyez ensuite plusieurs fois sur la touche Suppr pour supprimer l'option --append-only . Le fichier devrait ressembler à peu près à ceci, notez que nous avons commenté la première ligne et que --append-only est supprimé de la deuxième ligne :

#from="SERVERIPADDRESS",command="borg serve --append-only --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc ssh ... (the line continues) ...

from="SERVERIPADDRESS",command="borg serve --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc ssh ... (the line continues) ..

Enregistrez le fichier avec Ctrl+O et quittez avec Ctrl+X. Nous avons maintenant activé l'accès en lecture + écriture au référentiel borg.

4.2 Élaguer les anciennes sauvegardes (faites à partir du serveur principal)

Maintenant, connectez-vous au serveur principal dans une nouvelle fenêtre de terminal en tant qu'utilisateur root.

Nous allons maintenant créer un script sur le serveur principal pour élaguer (c'est-à-dire supprimer) les anciennes sauvegardes. Créez et modifiez le script shell sur le serveur principal de cette manière :

touch /usr/local/bin/borgprune.sh

chmod go-rwx /usr/local/bin/borgprune.sh

chmod u+rwx /usr/local/bin/borgprune.sh

nano /usr/local/bin/borgprune.sh

nsérez ensuite les lignes ci-dessous dans le script shell. Remplacez ensuite PASSWORD par le mot de passe de votre référentiel borg et BACKUPHOSTNAME par le nom d'hôte de votre serveur de sauvegarde. Vous devez également ajuster le nombre d'anciennes sauvegardes que vous souhaitez conserver. Dans cet exemple, nous conservons 7 sauvegardes quotidiennes, 4 sauvegardes hebdomadaires et 12 sauvegardes mensuelles.

#!/bin/sh

export BORG_PASSPHRASE='PASSWORD'

borg prune --stats --progress borgbackup@BACKUPHOSTNAME:/home/borgbackup/borgbackup/ --prefix `hostname`- --keep-daily=7 --keep-weekly=4 --keep-monthly=12

Appuyez sur Ctrl+O et Ctrl+X pour enregistrer et quitter le fichier. Ensuite, exécutez le script prune que vous venez de créer sur le serveur principal :

/usr/local/bin/borgprune.sh

Cette commande prendra un certain temps (peut aller jusqu'à quelques heures), mais vous pouvez voir les progrès qu'elle fait en cours de route, en deux passages pour atteindre 100%.

4.3 Interdire l'accès en lecture + écriture (effectué depuis le serveur de sauvegarde)

Maintenant, nous retournons travailler sur le serveur de sauvegarde.

Une fois la commande prune terminée sur le serveur principal, vous vous connectez maintenant au serveur de sauvegarde en tant qu'utilisateur borgbackup et modifiez à nouveau le fichier /home/borgbackup/.ssh/authorized_keys pour interdire l'accès en lecture + écriture.

Faites comme ceci sur le serveur de sauvegarde :

su borgbackup

cd

nano ~/.ssh/authorized_keys

Dans l'éditeur nano, supprimez le caractère # au début de la première ligne en appuyant sur la touche Suppr de votre clavier. Ensuite, appuyez sur la touche Bas et insérez un nouveau caractère # sur la deuxième ligne. Après cela, le fichier devrait ressembler plus ou moins à ceci :

from="SERVERIPADDRESS",command="borg serve --append-only --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc ssh ... (the line continues) ...

#from="SERVERIPADDRESS",command="borg serve --restrict-to-path /home/borgbackup/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc ssh ... (the line continues) ..

Enregistrez le fichier avec Ctrl+O et quittez avec Ctrl+X. Nous avons maintenant désactivé l'accès en lecture + écriture au référentiel borg.

Désormais, les sauvegardes peuvent continuer comme d'habitude, en mode ajout uniquement, et vous êtes protégé contre les tentatives de suppression du serveur principal visant les sauvegardes stockées sur le serveur de sauvegarde.

4.4 Remarques finales

Vous avez maintenant créé un système de sauvegarde hors site et en ajout uniquement. Cela signifie que les sauvegardes sont protégées de deux manières. Premièrement, les sauvegardes sont protégées dans le sens où elles sont physiquement séparées du serveur principal. Deuxièmement et enfin les sauvegardes déjà effectuées sont protégées des tentatives de modification du serveur principal (sauf lorsque vous décidez explicitement de les modifier par élagage manuel).